package com.example.elasticsearch.dao.es;

import com.example.elasticsearch.pojo.TestPojo;
import org.springframework.data.repository.CrudRepository;

/**
 * Spring Data Elasticsearch是Spring Data项目的一部分，该项目致力于提供一致的基于Spring的数据查询和存储编程模型。
 * Spring Data Elasticsearch封装了创建客户端的逻辑并与服务端保持长连接，让我们不必关注于网络连接问题。
 * 并且，通过对Repository接口的自动实现，Spring Data Elasticsearch可以直接通过方法名的语义实现查询功能，
 * 如常见的find+索引名+By+字段名+操作、等等。
 * 此外，Spring Data Elasticsearch还具有OR-Mapping功能，即查询到数据后，可以将数据直接封装到自定义的POJO中，
 * 方便后续对数据进行加工处理。
 *
 * 注意：
 * 1. T索引名、ID文档id的类型
 * 2. 得保证接口封装的类型是一致的，否则会无法创建非T类型
 */
//自定义es搜索
public interface TestPojoESRepoitory extends CrudRepository<TestPojo,Object> {
    /**
     * Spring DataElasticsearch会自动根据方法名称识别出方法的具体逻辑，然后生成Bean并填充逻辑代码实现该方法。
     */
    TestPojo findDistinctByNameLike(String name);
    TestPojo findByNameLike(String name);
}
